package gui;

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

import model.DelBehandlingPakkeKlar;
import service.Service;

/**
 * 
 * @author Søren
 * 
 */
public class LagerPladsStatus extends JPanel implements CarlettiPanel {

	private int lagerplads;
	private JPanel panel_1;
	private JButton btnNewButton_1;
	private JLabel lblVarenummer, lblMinTid, lblProduktType, lblPladsNummer;
	private JLabel lblIdeelTid;
	private JLabel lblMaxTid;

	/**
	 * Create the panel.
	 */
	public LagerPladsStatus() {
		setLayout(new BorderLayout(0, 0));

		panel_1 = new JPanel();
		add(panel_1, BorderLayout.CENTER);
		panel_1.setLayout(new GridLayout(0, 1, 0, 0));

		lblPladsNummer = new JLabel("Pladsnummer");
		lblPladsNummer.setFont(new Font("Dialog", Font.BOLD, 30));
		panel_1.add(lblPladsNummer);

		lblProduktType = new JLabel("Produkttype");
		lblProduktType.setFont(new Font("Dialog", Font.PLAIN, 30));
		panel_1.add(lblProduktType);

		lblVarenummer = new JLabel("Varenummer");
		lblVarenummer.setFont(new Font("Dialog", Font.PLAIN, 30));
		panel_1.add(lblVarenummer);

		lblMinTid = new JLabel("Min tid");
		lblMinTid.setFont(new Font("Dialog", Font.PLAIN, 30));
		panel_1.add(lblMinTid);

		lblIdeelTid = new JLabel("Ideel Tid");
		lblIdeelTid.setFont(new Font("Dialog", Font.PLAIN, 30));
		panel_1.add(lblIdeelTid);

		lblMaxTid = new JLabel("Max Tid");
		lblMaxTid.setFont(new Font("Dialog", Font.PLAIN, 30));
		panel_1.add(lblMaxTid);

		btnNewButton_1 = new JButton("Send til næste delbehandling");
		panel_1.add(btnNewButton_1);
		btnNewButton_1.setFont(new Font("Lucida Grande", Font.PLAIN, 30));
		btnNewButton_1.addActionListener(new BtnNewButton_1ActionListener());

	}

	public void update() {
		try {
			lblVarenummer.setText("Varenummer: "
					+ service.Service.getLager().getLagerPladser().get(
							this.lagerplads).getMellemVare().getVareNummer());
			if (Service.getLager().getLagerPladser().get(this.lagerplads)
					.getMellemVare().getTimeStamp().getDelBehandling() instanceof DelBehandlingPakkeKlar) {
				lblMinTid.setText("Min tid tilbage: " + "Pladsen er tom");
				lblIdeelTid.setText("Ideel tid tilbage:" + "Pladsen er tom");
				lblMaxTid.setText("Max tid tilbage: "
						+ service.Service.getLager().getLagerPladser().get(
								this.lagerplads).getMellemVare()
								.getMaxTidTilbage());
				lblProduktType.setText("Type: "
						+ service.Service.getLager().getLagerPladser().get(
								this.lagerplads).getMellemVare().getNavn());
				lblPladsNummer.setText("Pladsnummer: " + (this.lagerplads + 1));
				btnNewButton_1.setEnabled(true);

			} else {
				lblMinTid.setText("Min tid tilbage: "
						+ service.Service.getLager().getLagerPladser().get(
								this.lagerplads).getMellemVare()
								.getMinTidTilbage());
				lblIdeelTid.setText("Ideel tid tilbage: "
						+ service.Service.getLager().getLagerPladser().get(
								this.lagerplads).getMellemVare().getIdeelTid());
				lblMaxTid.setText("Max tid tilbage: "
						+ service.Service.getLager().getLagerPladser().get(
								this.lagerplads).getMellemVare()
								.getMaxTidTilbage());
				lblProduktType.setText("Type: "
						+ service.Service.getLager().getLagerPladser().get(
								this.lagerplads).getMellemVare().getNavn());
				lblPladsNummer.setText("Pladsnummer: " + (this.lagerplads + 1));
				btnNewButton_1.setEnabled(true);
			}
		} catch (NullPointerException e) {
			lblVarenummer.setText("Varenummer: " + "Pladsen er tom.");
			lblMinTid.setText("Min tørretid: " + "Pladsen er tom.");
			lblProduktType.setText("Produkttype: " + "Pladsen er tom.");
			lblPladsNummer.setText("Lagerplads: " + "Pladsen er tom.");
			lblIdeelTid.setText("Ideel tørretid: " + "Pladsen er tom.");
			lblMaxTid.setText("Max tørretid: " + "Pladsen er tom");
			btnNewButton_1.setEnabled(false);
		}
	}

	private class BtnNewButton_1ActionListener implements ActionListener {
		public void actionPerformed(ActionEvent arg0) {
			service.Service.timeStampMellemVare(service.Service.getLager()
					.getLagerPladser().get(lagerplads).getMellemVare());
			JOptionPane.showMessageDialog(null,
					"Varen er sendt til næste delbehandling!", "Vareinfo",
					JOptionPane.INFORMATION_MESSAGE);
		}
	}

	public void setLagerPlads(int i) {
		this.lagerplads = i;

	}
}
